/*
 * @Author: fuyu
 * @Date: 2021-12-06 17:10:19
 * @LastEditors: fuyu
 * @LastEditTime: 2021-12-06 17:10:19
 * @FilePath: /zskk-jssdk/index.js
 */
!
function(e, n) {
	"function" == typeof define && (define.amd || define.cmd) ? define(function() {
		return n(e)
	}) : n(e, !0)
} (this,
function(o, e) {
	if (!o.jWeixin) {
		var n, c = {
			config: "preVerifyJSAPI",
			onMenuShareTimeline: "menu:share:timeline",
			onMenuShareAppMessage: "menu:share:appmessage",
			onMenuShareQQ: "menu:share:qq",
			onMenuShareWeibo: "menu:share:weiboApp",
			onMenuShareQZone: "menu:share:QZone",
			previewImage: "imagePreview",
			getLocation: "geoLocation",
			openProductSpecificView: "openProductViewWithPid",
			addCard: "batchAddCard",
			openCard: "batchViewCard",
			chooseWXPay: "getBrandWCPayRequest",
			openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
			startSearchBeacons: "startMonitoringBeacons",
			stopSearchBeacons: "stopMonitoringBeacons",
			onSearchBeacons: "onBeaconsInRange",
			consumeAndShareCard: "consumedShareCard",
			openAddress: "editAddress"
		},
		a = function() {
			var e = {};
			for (var n in c) e[c[n]] = n;
			return e
		} (),
		i = o.document,
		t = i.title,
		r = navigator.userAgent.toLowerCase(),
		s = navigator.platform.toLowerCase(),
		d = !(!s.match("mac") && !s.match("win")),
		u = -1 != r.indexOf("wxdebugger"),
		l = -1 != r.indexOf("micromessenger"),
		p = -1 != r.indexOf("android"),
		f = -1 != r.indexOf("iphone") || -1 != r.indexOf("ipad"),
		m = (n = r.match(/micromessenger\/(\d+\.\d+\.\d+)/) || r.match(/micromessenger\/(\d+\.\d+)/)) ? n[1] : "",
		g = {
			initStartTime: L(),
			initEndTime: 0,
			preVerifyStartTime: 0,
			preVerifyEndTime: 0
		},
		h = {
			version: 1,
			appId: "",
			initTime: 0,
			preVerifyTime: 0,
			networkType: "",
			isPreVerifyOk: 1,
			systemType: f ? 1 : p ? 2 : -1,
			clientVersion: m,
			url: encodeURIComponent(location.href)
		},
		v = {},
		S = {
			_completes: []
		},
		y = {
			state: 0,
			data: {}
		};
		O(function() {
			g.initEndTime = L()
		});
		var I = !1,
		_ = [],
		w = {
			config: function(e) {
				B("config", v = e);
				var t = !1 !== v.check;
				O(function() {
					if (t) M(c.config, {
						verifyJsApiList: C(v.jsApiList),
						verifyOpenTagList: C(v.openTagList)
					},
					function() {
						S._complete = function(e) {
							g.preVerifyEndTime = L(),
							y.state = 1,
							y.data = e
						},
						S.success = function(e) {
							h.isPreVerifyOk = 0
						},
						S.fail = function(e) {
							S._fail ? S._fail(e) : y.state = -1
						};
						var t = S._completes;
						return t.push(function() { !
							function() {
								if (! (d || u || v.debug || m < "6.0.2" || h.systemType < 0)) {
									var i = new Image;
									h.appId = v.appId,
									h.initTime = g.initEndTime - g.initStartTime,
									h.preVerifyTime = g.preVerifyEndTime - g.preVerifyStartTime,
									w.getNetworkType({
										isInnerInvoke: !0,
										success: function(e) {
											h.networkType = e.networkType;
											var n = "https://open.weixin.qq.com/sdk/report?v=" + h.version + "&o=" + h.isPreVerifyOk + "&s=" + h.systemType + "&c=" + h.clientVersion + "&a=" + h.appId + "&n=" + h.networkType + "&i=" + h.initTime + "&p=" + h.preVerifyTime + "&u=" + h.url;
											i.src = n
										}
									})
								}
							} ()
						}),
						S.complete = function(e) {
							for (var n = 0,
							i = t.length; n < i; ++n) t[n]();
							S._completes = []
						},
						S
					} ()),
					g.preVerifyStartTime = L();
					else {
						y.state = 1;
						for (var e = S._completes,
						n = 0,
						i = e.length; n < i; ++n) e[n]();
						S._completes = []
					}
				}),
				w.invoke || (w.invoke = function(e, n, i) {
					o.WeixinJSBridge && WeixinJSBridge.invoke(e, x(n), i)
				},
				w.on = function(e, n) {
					o.WeixinJSBridge && WeixinJSBridge.on(e, n)
				})
			},
			ready: function(e) {
				0 != y.state ? e() : (S._completes.push(e), !l && v.debug && e())
			},
			error: function(e) {
				m < "6.0.2" || ( - 1 == y.state ? e(y.data) : S._fail = e)
			},
			checkJsApi: function(e) {
				M("checkJsApi", {
					jsApiList: C(e.jsApiList)
				},
				(e._complete = function(e) {
					if (p) {
						var n = e.checkResult;
						n && (e.checkResult = JSON.parse(n))
					}
					e = function(e) {
						var n = e.checkResult;
						for (var i in n) {
							var t = a[i];
							t && (n[t] = n[i], delete n[i])
						}
						return e
					} (e)
				},
				e))
			},
			onMenuShareTimeline: function(e) {
				P(c.onMenuShareTimeline, {
					complete: function() {
						M("shareTimeline", {
							title: e.title || t,
							desc: e.title || t,
							img_url: e.imgUrl || "",
							link: e.link || location.href,
							type: e.type || "link",
							data_url: e.dataUrl || ""
						},
						e)
					}
				},
				e)
			},
			onMenuShareAppMessage: function(n) {
				P(c.onMenuShareAppMessage, {
					complete: function(e) {
						"favorite" === e.scene ? M("sendAppMessage", {
							title: n.title || t,
							desc: n.desc || "",
							link: n.link || location.href,
							img_url: n.imgUrl || "",
							type: n.type || "link",
							data_url: n.dataUrl || ""
						}) : M("sendAppMessage", {
							title: n.title || t,
							desc: n.desc || "",
							link: n.link || location.href,
							img_url: n.imgUrl || "",
							type: n.type || "link",
							data_url: n.dataUrl || ""
						},
						n)
					}
				},
				n)
			},
			onMenuShareQQ: function(e) {
				P(c.onMenuShareQQ, {
					complete: function() {
						M("shareQQ", {
							title: e.title || t,
							desc: e.desc || "",
							img_url: e.imgUrl || "",
							link: e.link || location.href
						},
						e)
					}
				},
				e)
			},
			onMenuShareWeibo: function(e) {
				P(c.onMenuShareWeibo, {
					complete: function() {
						M("shareWeiboApp", {
							title: e.title || t,
							desc: e.desc || "",
							img_url: e.imgUrl || "",
							link: e.link || location.href
						},
						e)
					}
				},
				e)
			},
			onMenuShareQZone: function(e) {
				P(c.onMenuShareQZone, {
					complete: function() {
						M("shareQZone", {
							title: e.title || t,
							desc: e.desc || "",
							img_url: e.imgUrl || "",
							link: e.link || location.href
						},
						e)
					}
				},
				e)
			},
			updateTimelineShareData: function(e) {
				M("updateTimelineShareData", {
					title: e.title,
					link: e.link,
					imgUrl: e.imgUrl
				},
				e)
			},
			updateAppMessageShareData: function(e) {
				M("updateAppMessageShareData", {
					title: e.title,
					desc: e.desc,
					link: e.link,
					imgUrl: e.imgUrl
				},
				e)
			},
			startRecord: function(e) {
				M("startRecord", {},
				e)
			},
			stopRecord: function(e) {
				M("stopRecord", {},
				e)
			},
			onVoiceRecordEnd: function(e) {
				P("onVoiceRecordEnd", e)
			},
			playVoice: function(e) {
				M("playVoice", {
					localId: e.localId
				},
				e)
			},
			pauseVoice: function(e) {
				M("pauseVoice", {
					localId: e.localId
				},
				e)
			},
			stopVoice: function(e) {
				M("stopVoice", {
					localId: e.localId
				},
				e)
			},
			onVoicePlayEnd: function(e) {
				P("onVoicePlayEnd", e)
			},
			uploadVoice: function(e) {
				M("uploadVoice", {
					localId: e.localId,
					isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
				},
				e)
			},
			downloadVoice: function(e) {
				M("downloadVoice", {
					serverId: e.serverId,
					isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
				},
				e)
			},
			translateVoice: function(e) {
				M("translateVoice", {
					localId: e.localId,
					isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
				},
				e)
			},
			chooseImage: function(e) {
				M("chooseImage", {
					scene: "1|2",
					count: e.count || 9,
					sizeType: e.sizeType || ["original", "compressed"],
					sourceType: e.sourceType || ["album", "camera"]
				},
				(e._complete = function(e) {
					if (p) {
						var n = e.localIds;
						try {
							n && (e.localIds = JSON.parse(n))
						} catch(e) {}
					}
				},
				e))
			},
			getLocation: function(e) {},
			previewImage: function(e) {
				M(c.previewImage, {
					current: e.current,
					urls: e.urls
				},
				e)
			},
			uploadImage: function(e) {
				M("uploadImage", {
					localId: e.localId,
					isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
				},
				e)
			},
			downloadImage: function(e) {
				M("downloadImage", {
					serverId: e.serverId,
					isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
				},
				e)
			},
			getLocalImgData: function(e) { ! 1 === I ? (I = !0, M("getLocalImgData", {
					localId: e.localId
				},
				(e._complete = function(e) {
					if (I = !1, 0 < _.length) {
						var n = _.shift();
						wx.getLocalImgData(n)
					}
				},
				e))) : _.push(e)
			},
			getNetworkType: function(e) {
				M("getNetworkType", {},
				(e._complete = function(e) {
					e = function(e) {
						var n = e.errMsg;
						e.errMsg = "getNetworkType:ok";
						var i = e.subtype;
						if (delete e.subtype, i) e.networkType = i;
						else {
							var t = n.indexOf(":"),
							o = n.substring(t + 1);
							switch (o) {
							case "wifi":
							case "edge":
							case "wwan":
								e.networkType = o;
								break;
							default:
								e.errMsg = "getNetworkType:fail"
							}
						}
						return e
					} (e)
				},
				e))
			},
			openLocation: function(e) {
				M("openLocation", {
					latitude: e.latitude,
					longitude: e.longitude,
					name: e.name || "",
					address: e.address || "",
					scale: e.scale || 28,
					infoUrl: e.infoUrl || ""
				},
				e)
			},
			getLocation: function(e) {
				M(c.getLocation, {
					type: (e = e || {}).type || "wgs84"
				},
				(e._complete = function(e) {
					delete e.type
				},
				e))
			},
			hideOptionMenu: function(e) {
				M("hideOptionMenu", {},
				e)
			},
			showOptionMenu: function(e) {
				M("showOptionMenu", {},
				e)
			},
			closeWindow: function(e) {
				M("closeWindow", {},
				e = e || {})
			},
			hideMenuItems: function(e) {
				M("hideMenuItems", {
					menuList: e.menuList
				},
				e)
			},
			showMenuItems: function(e) {
				M("showMenuItems", {
					menuList: e.menuList
				},
				e)
			},
			hideAllNonBaseMenuItem: function(e) {
				M("hideAllNonBaseMenuItem", {},
				e)
			},
			showAllNonBaseMenuItem: function(e) {
				M("showAllNonBaseMenuItem", {},
				e)
			},
			scanQRCode: function(e) {
				M("scanQRCode", {
					needResult: (e = e || {}).needResult || 0,
					scanType: e.scanType || ["qrCode", "barCode"]
				},
				(e._complete = function(e) {
					if (f) {
						var n = e.resultStr;
						if (n) {
							var i = JSON.parse(n);
							e.resultStr = i && i.scan_code && i.scan_code.scan_result
						}
					}
				},
				e))
			},
			openAddress: function(e) {
				M(c.openAddress, {},
				(e._complete = function(e) {
					e = function(e) {
						return e.postalCode = e.addressPostalCode,
						delete e.addressPostalCode,
						e.provinceName = e.proviceFirstStageName,
						delete e.proviceFirstStageName,
						e.cityName = e.addressCitySecondStageName,
						delete e.addressCitySecondStageName,
						e.countryName = e.addressCountiesThirdStageName,
						delete e.addressCountiesThirdStageName,
						e.detailInfo = e.addressDetailInfo,
						delete e.addressDetailInfo,
						e
					} (e)
				},
				e))
			},
			openProductSpecificView: function(e) {
				M(c.openProductSpecificView, {
					pid: e.productId,
					view_type: e.viewType || 0,
					ext_info: e.extInfo
				},
				e)
			},
			addCard: function(e) {
				for (var n = e.cardList,
				i = [], t = 0, o = n.length; t < o; ++t) {
					var r = n[t],
					a = {
						card_id: r.cardId,
						card_ext: r.cardExt
					};
					i.push(a)
				}
				M(c.addCard, {
					card_list: i
				},
				(e._complete = function(e) {
					var n = e.card_list;
					if (n) {
						for (var i = 0,
						t = (n = JSON.parse(n)).length; i < t; ++i) {
							var o = n[i];
							o.cardId = o.card_id,
							o.cardExt = o.card_ext,
							o.isSuccess = !!o.is_succ,
							delete o.card_id,
							delete o.card_ext,
							delete o.is_succ
						}
						e.cardList = n,
						delete e.card_list
					}
				},
				e))
			},
			chooseCard: function(e) {
				M("chooseCard", {
					app_id: v.appId,
					location_id: e.shopId || "",
					sign_type: e.signType || "SHA1",
					card_id: e.cardId || "",
					card_type: e.cardType || "",
					card_sign: e.cardSign,
					time_stamp: e.timestamp + "",
					nonce_str: e.nonceStr
				},
				(e._complete = function(e) {
					e.cardList = e.choose_card_info,
					delete e.choose_card_info
				},
				e))
			},
			openCard: function(e) {
				for (var n = e.cardList,
				i = [], t = 0, o = n.length; t < o; ++t) {
					var r = n[t],
					a = {
						card_id: r.cardId,
						code: r.code
					};
					i.push(a)
				}
				M(c.openCard, {
					card_list: i
				},
				e)
			},
			consumeAndShareCard: function(e) {
				M(c.consumeAndShareCard, {
					consumedCardId: e.cardId,
					consumedCode: e.code
				},
				e)
			},
			chooseWXPay: function(e) {
				M(c.chooseWXPay, V(e), e)
			},
			openEnterpriseRedPacket: function(e) {
				M(c.openEnterpriseRedPacket, V(e), e)
			},
			startSearchBeacons: function(e) {
				M(c.startSearchBeacons, {
					ticket: e.ticket
				},
				e)
			},
			stopSearchBeacons: function(e) {
				M(c.stopSearchBeacons, {},
				e)
			},
			onSearchBeacons: function(e) {
				P(c.onSearchBeacons, e)
			},
			openEnterpriseChat: function(e) {
				M("openEnterpriseChat", {
					useridlist: e.userIds,
					chatname: e.groupName
				},
				e)
			},
			launchMiniProgram: function(e) {
				M("launchMiniProgram", {
					targetAppId: e.targetAppId,
					path: function(e) {
						if ("string" == typeof e && 0 < e.length) {
							var n = e.split("?")[0],
							i = e.split("?")[1];
							return n += ".html",
							void 0 !== i ? n + "?" + i: n
						}
					} (e.path),
					envVersion: e.envVersion
				},
				e)
			},
			openBusinessView: function(e) {
				M("openBusinessView", {
					businessType: e.businessType,
					queryString: e.queryString || "",
					envVersion: e.envVersion
				},
				(e._complete = function(n) {
					if (p) {
						var e = n.extraData;
						if (e) try {
							n.extraData = JSON.parse(e)
						} catch(e) {
							n.extraData = {}
						}
					}
				},
				e))
			},
			miniProgram: {
				navigateBack: function(e) {
					e = e || {},
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "navigateBack",
							arg: {
								delta: e.delta || 1
							}
						},
						e)
					})
				},
				navigateTo: function(e) {
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "navigateTo",
							arg: {
								url: e.url
							}
						},
						e)
					})
				},
				redirectTo: function(e) {
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "redirectTo",
							arg: {
								url: e.url
							}
						},
						e)
					})
				},
				switchTab: function(e) {
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "switchTab",
							arg: {
								url: e.url
							}
						},
						e)
					})
				},
				reLaunch: function(e) {
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "reLaunch",
							arg: {
								url: e.url
							}
						},
						e)
					})
				},
				postMessage: function(e) {
					O(function() {
						M("invokeMiniProgramAPI", {
							name: "postMessage",
							arg: e.data || {}
						},
						e)
					})
				},
				getEnv: function(e) {
					O(function() {
						e({
							miniprogram: "miniprogram" === o.__wxjs_environment
						})
					})
				}
			}
		},
		T = 1,
		k = {};
		return i.addEventListener("error",
		function(e) {
			if (!p) {
				var n = e.target,
				i = n.tagName,
				t = n.src;
				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) if ( - 1 != t.indexOf("wxlocalresource://")) {
					e.preventDefault(),
					e.stopPropagation();
					var o = n["wx-id"];
					if (o || (o = T++, n["wx-id"] = o), k[o]) return;
					k[o] = !0,
					wx.ready(function() {
						wx.getLocalImgData({
							localId: t,
							success: function(e) {
								n.src = e.localData
							}
						})
					})
				}
			}
		},
		!0),
		i.addEventListener("load",
		function(e) {
			if (!p) {
				var n = e.target,
				i = n.tagName;
				n.src;
				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
					var t = n["wx-id"];
					t && (k[t] = !1)
				}
			}
		},
		!0),
		e && (o.wx = o.jWeixin = w),
		w
	}
	function M(n, e, i) {
		o.WeixinJSBridge ? WeixinJSBridge.invoke(n, x(e),
		function(e) {
			A(n, e, i)
		}) : B(n, i)
	}
	function P(n, i, t) {
		o.WeixinJSBridge ? WeixinJSBridge.on(n,
		function(e) {
			t && t.trigger && t.trigger(e),
			A(n, e, i)
		}) : B(n, t || i)
	}
	function x(e) {
		return (e = e || {}).appId = v.appId,
		e.verifyAppId = v.appId,
		e.verifySignType = "sha1",
		e.verifyTimestamp = v.timestamp + "",
		e.verifyNonceStr = v.nonceStr,
		e.verifySignature = v.signature,
		e
	}
	function V(e) {
		return {
			timeStamp: e.timestamp + "",
			nonceStr: e.nonceStr,
			package: e.package,
			paySign: e.paySign,
			signType: e.signType || "SHA1"
		}
	}
	function A(e, n, i) {
		"openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code),
		delete n.err_code,
		delete n.err_desc,
		delete n.err_detail;
		var t = n.errMsg;
		t || (t = n.err_msg, delete n.err_msg, t = function(e, n) {
			var i = e,
			t = a[i];
			t && (i = t);
			var o = "ok";
			if (n) {
				var r = n.indexOf(":");
				"confirm" == (o = n.substring(r + 1)) && (o = "ok"),
				"failed" == o && (o = "fail"),
				-1 != o.indexOf("failed_") && (o = o.substring(7)),
				-1 != o.indexOf("fail_") && (o = o.substring(5)),
				"access denied" != (o = (o = o.replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"),
				"config" == i && "function not exist" == o && (o = "ok"),
				"" == o && (o = "fail")
			}
			return n = i + ":" + o
		} (e, t), n.errMsg = t),
		(i = i || {})._complete && (i._complete(n), delete i._complete),
		t = n.errMsg || "",
		v.debug && !i.isInnerInvoke && alert(JSON.stringify(n));
		var o = t.indexOf(":");
		switch (t.substring(o + 1)) {
		case "ok":
			i.success && i.success(n);
			break;
		case "cancel":
			i.cancel && i.cancel(n);
			break;
		default:
			i.fail && i.fail(n)
		}
		i.complete && i.complete(n)
	}
	function C(e) {
		if (e) {
			for (var n = 0,
			i = e.length; n < i; ++n) {
				var t = e[n],
				o = c[t];
				o && (e[n] = o)
			}
			return e
		}
	}
	function B(e, n) {
		if (! (!v.debug || n && n.isInnerInvoke)) {
			var i = a[e];
			i && (e = i),
			n && n._complete && delete n._complete,
			console.log('"' + e + '",', n || "")
		}
	}
	function L() {
		return (new Date).getTime()
	}
	function O(e) {
		l && (o.WeixinJSBridge ? e() : i.addEventListener && i.addEventListener("WeixinJSBridgeReady", e, !1))
	}
});